﻿Public Class frmInventario

    Private Sub frmInventario_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        frminventory = False
    End Sub

    Private Sub frmInventario_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ''Cargar COMBO en LISTADO INVENTARIO con los TIPOS DE INVENTARIO
        cmbTipoInventarioListado.DataSource = cI.mtdTipoInventario.Tables("InventarioTipo")
        cmbTipoInventarioListado.DisplayMember = "nombre_InventarioTipo"
        cmbTipoInventarioListado.ValueMember = "codigo_InventarioTipo" 'No carga el valor del campo, sino el nombre del campo ¿why?

        ''Cargar COMBO en AGREGAR INVENTARIO con los TIPOS DE INVENTARIO
        cmbTipoInventarioAgregar.DataSource = cI.mtdTipoInventario.Tables("InventarioTipo")
        cmbTipoInventarioAgregar.DisplayMember = "nombre_InventarioTipo"
        cmbTipoInventarioAgregar.ValueMember = "codigo_InventarioTipo" 'No carga el valor del campo, sino el nombre del campo ¿why?

        ''Cargar COMBO en EDITAR INVENTARIO con los TIPOS DE INVENTARIO
        cmbTipoInventarioEditar.DataSource = cI.mtdTipoInventario.Tables("InventarioTipo")
        cmbTipoInventarioEditar.DisplayMember = "nombre_InventarioTipo"
        cmbTipoInventarioEditar.ValueMember = "codigo_InventarioTipo" 'No carga el valor del campo, sino el nombre del campo ¿why?

        ''Valor por Defecto del estado: Disponible
        rbDisponibleAgregar.Checked = True

        ''Datos de Red para Auditoria
        cI.usuarioAuditoria = cU.usuLogueado
        cI.ipAuditoria = ip
        cI.pcAuditoria = pc
        cI.usuariopcAuditoria = usuariopc
    End Sub

    Private Sub frmInventario_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
        ''Volvemos flexible al contenedor de las pestañas, de esta manera crecerá con el formulario
        tabInventario.Width = Me.Width - 10
        tabInventario.Height = Me.Height - 32
        dgvListado.Width = Me.Width - 18
        dgvListado.Height = Me.Height - 96
    End Sub

    Private Sub btnAgregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregar.Click
        If ((RTrim(LTrim(txtCodPatrimAgregar.Text)).Length > 0) And (RTrim(LTrim(txtDenominacionAgregar.Text)).Length > 0) And (RTrim(LTrim(txtUnidadAgregar.Text)).Length > 0) And (RTrim(LTrim(txtCantidadAgregar.Text)).Length > 0)) Then
            ''Datos del Formulario
            cI.codpatrimonial = RTrim(LTrim(txtCodPatrimAgregar.Text))
            cI.denominacion = RTrim(LTrim(txtDenominacionAgregar.Text))
            cI.dimension = RTrim(LTrim(txtDimensionAgregar.Text))
            cI.color = RTrim(LTrim(txtColorAgregar.Text))
            cI.marca = RTrim(LTrim(txtMarcaAgregar.Text))
            cI.modelo = RTrim(LTrim(txtModeloAgregar.Text))
            cI.serie = RTrim(LTrim(txtSerieAgregar.Text))
            cI.unidad = RTrim(LTrim(txtUnidadAgregar.Text))
            cI.cantidad = RTrim(LTrim(txtCantidadAgregar.Text))
            If (rbDisponibleAgregar.Checked = True) Then
                cI.estado = 1
            ElseIf (rbNoDisponibleAgregar.Checked = True) Then
                cI.estado = 0
            End If
            cI.observacion = RTrim(LTrim(txtObservacionAgregar.Text))
            cI.tipinventario = (cmbTipoInventarioAgregar.SelectedIndex + 1) 'SelectedIndex nos da el indice del valor seleccionado, +1 porque el array inicia en 0
            ''Datos de Auditoria
            cI.campoAuditoria = "Cod Patrim | Denominacion | Dimension | Color | Marca | Modelo | Serie | Unidad | Cantidad | Estado | Observacion | Tipo"
            cI.valantiguoAuditoria = ""
            cI.valnuevoAuditoria = CStr(cI.codpatrimonial) + " | " + cI.denominacion + " | " + cI.dimension + " | " + cI.color + " | " + cI.marca + " | " + cI.modelo + " | " + cI.serie + " | " + cI.unidad + " | " + CStr(cI.cantidad) + " | " + CStr(cI.estado) + " | " + cI.observacion + " | " + CStr(cI.tipinventario)
            If (cI.mtdAgregarInventario()) Then
                ''Enviar parametro
                cI.tipinventario = (cmbTipoInventarioAgregar.SelectedIndex + 1)
                ''Recibir valor
                If (cI.mtdUltimoRegistroTipoInventario = True) Then
                    txtCodPatrimAgregar.Text = cI.ultimoNumero
                End If
                ''Reseteamos los campos
                txtDenominacionAgregar.ResetText()
                txtDimensionAgregar.ResetText()
                txtColorAgregar.ResetText()
                txtMarcaAgregar.ResetText()
                txtModeloAgregar.ResetText()
                txtSerieAgregar.ResetText()
                txtUnidadAgregar.ResetText()
                txtCantidadAgregar.ResetText()
                rbDisponibleAgregar.Checked = True
                txtObservacionAgregar.ResetText()
                ''Hacemos saber al usuario que los datos han sido guardados.
                MsgBox("Los datos han sido agregados.")
                txtCodPatrimAgregar.Focus()
            End If
        Else
            MsgBox("Los campos obligatorios no pueden estar vacíos.")
        End If
    End Sub

    Private Sub txtCodPatrimAgregar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtCodPatrimAgregar.KeyPress
        'Validacion -> Ingreso de datos SOLO NUMEROS
        If Char.IsDigit(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If
    End Sub

    Private Sub txtCantidadAgregar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtCantidadAgregar.KeyPress
        'Validacion -> Ingreso de datos SOLO NUMEROS
        If Char.IsDigit(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If
        'Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub btnActualizar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnActualizar.Click
        ''Datos del Formulario
        cI.codpatrimonial = RTrim(LTrim(txtCodPatrimEditar.Text))
        cI.denominacion = RTrim(LTrim(txtDenominacionEditar.Text))
        cI.dimension = RTrim(LTrim(txtDimensionEditar.Text))
        cI.color = RTrim(LTrim(txtColorEditar.Text))
        cI.marca = RTrim(LTrim(txtMarcaEditar.Text))
        cI.modelo = RTrim(LTrim(txtModeloEditar.Text))
        cI.serie = RTrim(LTrim(txtSerieEditar.Text))
        cI.unidad = RTrim(LTrim(txtUnidadEditar.Text))
        cI.cantidad = RTrim(LTrim(txtCantidadEditar.Text))
        If (rbDisponibleEditar.Checked = True) Then
            cI.estado = 1
        ElseIf (rbNoDisponibleEditar.Checked = True) Then
            cI.estado = 0
        End If
        cI.observacion = RTrim(LTrim(txtObservacionEditar.Text))
        cI.tipinventario = (cmbTipoInventarioEditar.SelectedIndex + 1) 'SelectedIndex nos da el indice del valor seleccionado, +1 porque el array inicia en 0
        ''Datos de Auditoria
        cI.campoAuditoria = "Cod Patrim | Denominacion | Dimension | Color | Marca | Modelo | Serie | Unidad | Cantidad | Estado | Observacion | Tipo"
        cI.valantiguoAuditoria = ""
        cI.valnuevoAuditoria = CStr(cI.codpatrimonial) + " | " + cI.denominacion + " | " + cI.dimension + " | " + cI.color + " | " + cI.marca + " | " + cI.modelo + " | " + cI.serie + " | " + cI.unidad + " | " + CStr(cI.cantidad) + " | " + CStr(cI.estado) + " | " + cI.observacion + " | " + CStr(cI.tipinventario)
        If (cI.mtdModificarInventario()) Then
            ''Reseteamos los contenedores
            txtCodPatrimAgregar.ResetText()
            txtDenominacionAgregar.ResetText()
            txtDimensionAgregar.ResetText()
            txtColorAgregar.ResetText()
            txtMarcaAgregar.ResetText()
            txtModeloAgregar.ResetText()
            txtSerieAgregar.ResetText()
            txtUnidadAgregar.ResetText()
            txtCantidadAgregar.ResetText()
            rbDisponibleAgregar.Checked = True
            txtObservacionAgregar.ResetText()
            ''Hacemos saber al usuario que los datos han sido guardados.
            MsgBox("Los datos han sido actualizados.")
        End If
    End Sub

    Private Sub btnBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuscar.Click
        If (RTrim(LTrim(txtCodPatrimEditar.Text)).Length > 0) Then
            ''Datos del Formulario
            cI.codpatrimonial = CInt(RTrim(LTrim(txtCodPatrimEditar.Text)))
            cI.tipinventario = (cmbTipoInventarioEditar.SelectedIndex + 1) 'SelectedIndex nos da el indice del valor seleccionado, +1 porque el array inicia en 0
            ''Datos de Auditoria
            cI.campoAuditoria = "Cod Patrim | Tipo"
            cI.valantiguoAuditoria = CStr(cI.codpatrimonial) + " | " + CStr(cI.tipinventario)
            cI.valnuevoAuditoria = ""
            If (cI.mtdBuscarInventario()) Then
                ''Bloqueamos el Cod. Patrim. para evitar atentos a la integridad del registro
                txtCodPatrimEditar.Enabled = False
                ''Mostramos los contenedores
                gbDescripcionEditar.Visible = True
                gbExistenciaEditar.Visible = True
                gbObservacionEditar.Visible = True
                btnActualizar.Visible = True
                btnNuevaBusqueda.Visible = True
                ''Ocultamos la opcion de busqueda
                btnBuscar.Visible = False
                ''Llenamos los contenedores con los datos obtenidos
                txtDenominacionEditar.Text = cI.denominacion
                txtDimensionEditar.Text = cI.dimension
                txtColorEditar.Text = cI.color
                txtMarcaEditar.Text = cI.marca
                txtModeloEditar.Text = cI.modelo
                txtSerieEditar.Text = cI.serie
                txtUnidadEditar.Text = cI.unidad
                txtCantidadEditar.Text = cI.cantidad
                If (cI.estado = 1) Then
                    rbDisponibleEditar.Checked = True
                ElseIf (cI.estado = 0) Then
                    rbNoDisponibleEditar.Checked = True
                End If
                txtObservacionEditar.Text = cI.observacion
            End If
        Else
            MsgBox("El campo Codigo Patrimonial no puede estar vacío.")
        End If
    End Sub

    Private Sub btnNuevaBusqueda_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuevaBusqueda.Click
        ''Desbloqueamos el Cod. Patrim. para realizar una nueva busqueda
        txtCodPatrimEditar.Enabled = True
        ''Ocultamos los contenedores
        gbDescripcionEditar.Visible = False
        gbExistenciaEditar.Visible = False
        gbObservacionEditar.Visible = False
        btnActualizar.Visible = False
        btnNuevaBusqueda.Visible = False
        ''Mostramos la opcion de busqueda
        btnBuscar.Visible = True
        ''Reseteamos los contenedores
        txtCodPatrimEditar.ResetText()
        txtDenominacionEditar.ResetText()
        txtDimensionEditar.ResetText()
        txtColorEditar.ResetText()
        txtMarcaEditar.ResetText()
        txtModeloEditar.ResetText()
        txtSerieEditar.ResetText()
        txtUnidadEditar.ResetText()
        txtCantidadEditar.ResetText()
        rbDisponibleEditar.Checked = True
        txtObservacionEditar.ResetText()
    End Sub

    Private Sub txtCodPatrimEditar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtCodPatrimEditar.KeyPress
        'Validacion -> Ingreso de datos SOLO NUMEROS
        If Char.IsDigit(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If
    End Sub

    Private Sub dgvListado_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvListado.CellContentClick

    End Sub

    Private Sub txtDenominacionAgregar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtDenominacionAgregar.KeyPress
        'Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtDimensionAgregar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtDimensionAgregar.KeyPress
        'Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtColorAgregar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtColorAgregar.KeyPress
        'Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtMarcaAgregar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtMarcaAgregar.KeyPress
        'Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtModeloAgregar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtModeloAgregar.KeyPress
        'Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtSerieAgregar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSerieAgregar.KeyPress
        'Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtUnidadAgregar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtUnidadAgregar.KeyPress
        'Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtObservacionAgregar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtObservacionAgregar.KeyPress
        'Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtDenominacionEditar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtDenominacionEditar.KeyPress
        'Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtDimensionEditar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtDimensionEditar.KeyPress
        'Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtColorEditar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtColorEditar.KeyPress
        'Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtMarcaEditar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtMarcaEditar.KeyPress
        'Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtModeloEditar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtModeloEditar.KeyPress
        'Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtSerieEditar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSerieEditar.KeyPress
        'Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtUnidadEditar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtUnidadEditar.KeyPress
        'Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtCantidadEditar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtCantidadEditar.KeyPress
        'Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub txtObservacionEditar_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtObservacionEditar.KeyPress
        'Tabulacion
        If e.KeyChar = ChrW(Keys.Enter) Then
            e.Handled = True
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Private Sub btnMostrarTodo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMostrarTodo.Click
        ''Listar TODO el Inventario
        dgvListado.DataSource = cI.mtdListarTodoInventario()
        dgvListado.AllowUserToAddRows = False
        dgvListado.AutoResizeColumns()
        dgvListado.AutoResizeRows()
    End Sub

    Private Sub cbTipoInventarioListado_SelectedValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbTipoInventarioListado.SelectedValueChanged
        ''Enviar parametro
        cI.tipinventario = (cmbTipoInventarioListado.SelectedIndex + 1)
        ''Listar TODO el Inventario
        dgvListado.DataSource = cI.mtdListarInventario()
        dgvListado.AllowUserToAddRows = False
        dgvListado.AutoResizeColumns()
        dgvListado.AutoResizeRows()
    End Sub

    Private Sub cmbTipoInventarioAgregar_SelectedValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbTipoInventarioAgregar.SelectedValueChanged
        ''Enviar parametro
        cI.tipinventario = (cmbTipoInventarioAgregar.SelectedIndex + 1)
        ''Recibir valor
        If (cI.mtdUltimoRegistroTipoInventario = True) Then
            txtCodPatrimAgregar.Text = cI.ultimoNumero
        End If
    End Sub
End Class